+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
+2002-02-17 Tor Lillqvist <tml@iki.fi>
+
+ * gdk/win32/gdkcolor-win32.c (free_colors): Don't set the
+ PC_EXPLICIT flag for unused palette entries, that might have
+ undesired side effects. Just set them to black. Black is always
+ present in a palette, so having superfluous black entries won't
+ cause any extra allocations from the system palette either when
+ realized.
+
+ * gdk/win32/gdkevents-win32.c
+ (gdk_event_translate:WM_QUERYNEWPALETTE): Don't do anything if the
+ system visual is static color, i.e. the user has told GDK to use
+ just the 16 static colors. In that case no need to redraw
+ anything, as the colors are static and by definition always
+ correctly mapped in the system palette.
+ (WM_PALETTECHANGED): Ditto, no need to call UpdateColors() either.
+
+ * gtk/gtk.def: Add new gtkfilesel entry points.
+
2002-02-17 Matthias Clasen <maclas@gmx.de>
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
GdkColormapPrivateWin32 *cmapp = GDK_WIN32_COLORMAP_DATA (cmap);
gint i;
#ifdef G_ENABLE_DEBUG
- gint set_explicit = 0;
+ gint set_black_count = 0;
#endif
+ gboolean *cleared_entries;
+
+ cleared_entries = g_new0 (gboolean, cmap->size);
/* We don't have to do anything for non-palette devices. */
else if (cmapp->use[pixels[i]] == GDK_WIN32_PE_STATIC)
; /* Nothing either*/
else
- cmapp->use[pixels[i]] = GDK_WIN32_PE_AVAILABLE;
+ {
+ cmapp->use[pixels[i]] = GDK_WIN32_PE_AVAILABLE;
+ cleared_entries[pixels[i]] = TRUE;
+ }
}
for (i = cmapp->current_size - 1; i >= 0; i--)
if (cmapp->use[i] != GDK_WIN32_PE_AVAILABLE)
else
cmapp->current_size = i + 1;
}
+ pe.peRed = pe.peGreen = pe.peBlue = pe.peFlags = 0;
for (i = 0; i < cmapp->current_size; i++)
{
- if (cmapp->use[i] == GDK_WIN32_PE_AVAILABLE)
+ if (cleared_entries[i])
{
- *(WORD*)&pe = i;
- pe.peFlags = PC_EXPLICIT;
if (!SetPaletteEntries (cmapp->hpal, i, 1, &pe))
WIN32_GDI_FAILED ("SetPaletteEntries");
- GDK_NOTE (COLORMAP, set_explicit++);
+ GDK_NOTE (COLORMAP, set_black_count++);
}
}
#if 0
GDK_NOTE (COLORMAP, gdk_win32_print_hpalette (cmapp->hpal));
#else
- GDK_NOTE (COLORMAP, (set_explicit > 0 ?
- g_print ("free_colors: %d (%d) PC_EXPLICIT\n",
- set_explicit, cmapp->current_size)
+ GDK_NOTE (COLORMAP, (set_black_count > 0 ?
+ g_print ("free_colors: %d (%d) set to black\n",
+ set_black_count, cmapp->current_size)
: (void) 0));
#endif
+ g_free (cleared_entries);
+
break;
default:
case WM_QUERYNEWPALETTE:
GDK_NOTE (EVENTS_OR_COLORMAP, g_print ("WM_QUERYNEWPALETTE: %p\n",
msg->hwnd));
- synthesize_expose_events (window);
- update_colors_counter = 0;
+ if (gdk_visual_get_system ()->type == GDK_VISUAL_PSEUDO_COLOR)
+ {
+ synthesize_expose_events (window);
+ update_colors_counter = 0;
+ }
*ret_val_flagp = TRUE;
*ret_valp = FALSE;
break;
*ret_val_flagp = TRUE;
*ret_valp = FALSE;
+ if (gdk_visual_get_system ()->type != GDK_VISUAL_PSEUDO_COLOR)
+ break;
+
if (msg->hwnd == (HWND) msg->wParam)
break;